<script setup lang="ts">
defineProps({
  // 基础类型检查
  // （给出 `null` 和 `undefined` 值则会跳过任何类型检查）
  num: Number,
  // 类型组合
  age: [String, Number],//age 可以是string，Number
  // 必传但可为 null 的字符串
  email: {
    type: [String, null],
    required: true,
  },
  // 类型的默认值
  gender: {
    addr: String,
    default: '未知',
  },
  //对象类型的默认值
  score:{
    type:Object,
    default(raw:any){
      console.log(raw)
      return {
        title:'ha ha',
        len:raw.length,
      };
    }
  },
  msg:{
    validator(value: string, props: unknown): boolean {
      console.info(value, props);
        return ['success', 'warning', 'danger'].includes(value)
    }
  }
});
</script>

<template>
  <h5>基本类型</h5>
  <p>num：{{ num }}</p>
  <p>age：{{ age }}</p>
  <p>email：{{ email }}</p>
  <p>gender：{{ gender }}</p>
  <p>score：{{ score }}</p>
  <p>msg：{{ msg }}</p>
</template>

<style scoped>

</style>